/*  ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** 
*   Copyright 2014 Jan-Marwin Wollschläger                                   *
*                                                                            *
*   Licensed under the Apache License, Version 2.0 (the "License");          *
*   you may not use this file except in compliance with the License.         *
*   You may obtain a copy of the License at                                  *
*                                                                            *
*       http://www.apache.org/licenses/LICENSE-2.0                           *
*                                                                            *
*   Unless required by applicable law or agreed to in writing, software      *
*   distributed under the License is distributed on an "AS IS" BASIS,        *
*   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
*   See the License for the specific language governing permissions and      *
*   limitations under the License.                                           *
** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **   */  


public interface IBoundingRectangle
{
   /**
	* Returns The x,y - coordinates of this bounding rectangle, e.g.
	* where this widget is located. 
	**/
	public Pair getPosition();
	
	/**
	* Sets the new position for this bounding rectangle, e.g. where
	* this widget will be located.
	* @param pos The new x,y - coordinates for this instance.
	**/
	public void setPosition(Pair pos);
	
	/**
	* The dimensions of this instance, e.g. width, height. 
	**/ 
	public Pair getDimensions();
	
	/**
	* The upper left corner as a Pair.
	**/
	public Pair getUpperLeftCorner();
	
	/**
	* The lower right corner as a Pair.
	**/
	public Pair getLowerRightCorner();
	
	/**
	* Checks if the specified point (x,y) lies in this 
	* bounding rectangle, returns false otherwise.
	* @param point The point to check.
	* @return True if point is contained in this instance, 
	* false otherwise
	**/
	public boolean containedIn(Pair point);
	
	/**
	* Checks if the specified point (x,y) lies in this 
	* bounding rectangle, returns false otherwise.
	* @param point The point to check.
	* @return True if point is contained in this instance, 
	* false otherwise
	**/
	public boolean containedIn(Vector2 point);
}
